@mixin plain() {
  &,
  &:link,
  &:visited {
    @content;
  }
}

@mixin hover() {
  .root[data-is-touch="false"] &:hover {
    @content;
  }
}

@mixin active() {
  .root[data-is-touch] &.active,
  .root[data-is-touch] &:active {
    @content;
  }
}

@mixin focus() {
  .root[data-is-touch] &.focus {
    @content;
  }
}

@mixin disabled() {
  &.disabled,
  &:disabled {
    @content;
  }
}